package com.hjh.net.moshi.adapter

import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.text.DateFormat
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale

/**
 * @author： hujinhua
 * @createDate： 2023/11/18 14:49
 * @description：moshi解析库配置类（json）
 * @qq： 3472903821
 * @version: 1.0
 */
@Suppress("unused")
class DateAdapter {
    private val dateFormat: DateFormat =
        SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)

    @ToJson
    @Synchronized
    fun toJson(date: Date): String {
        return dateFormat.format(date)
    }

    @FromJson
    @Synchronized
    fun fromJson(s: String): Date? {
        return try {
            dateFormat.parse(s)
        } catch (e: ParseException) {
            s.toLong().toDate()
        }
    }

    private fun Long.toDate(): Date {
        return Date(this)
    }
}
